package com.iuie.ns.datum.service;

import java.util.List;

import com.iuie.ns.datum.vo.TableFieldVO;

/**
 * 用户表字段-service
 * @author iuie
 * @date 2018-01-25 15:30:43
 */
public interface ITableFieldService {
	
	/**
     * 根据tableId查询表的字段列表
     * @param id
     * @return
     */
	List<TableFieldVO> findFieldsByTableId(Long tableId);
	
	/**
	 * 批量新增
	 * @param items
	 */
	void batchAdd(List<TableFieldVO> records);
	
	/**
	 * 根据表Id删除该表的所有字段
	 * @param tableId
	 */
	void deleteFieldsByTableId(Long tableId);
	
	/**
	 * 根据Id删除
	 * @param id
	 */
	void deleteById(Long id);

	/**
	 * 保存或修改表的字段
	 * @param field
	 * @param updateRemark
	 */
	void saveTableField(TableFieldVO field, String updateRemark);
	
	/**
	 * 根据表ID和字段名查询字段
	 * @param tableId
	 * @param fieldName
	 * @return
	 */
	TableFieldVO findFieldByFieldName(Long tableId, String fieldName);

	/**
	 * 根据Id查询单条记录
	 * @param fieldId
	 * @return
	 */
	TableFieldVO findById(Long fieldId);

	/**
	 * 更新doQuery属性
	 * @param fieldId
	 * @param doQuery
	 */
	void updateDoQuery(Long fieldId, String doQuery);
	
	/**
	 * 更新queryMode属性
	 * @param fieldId
	 * @param queryMode
	 */
	void updateQueryMode(Long fieldId, String queryMode);
	
	/**
	 * 更新doUpdate属性
	 * @param fieldId
	 * @param doUpdate
	 */
	void updateDoUpdate(Long fieldId, String doUpdate);

	/**
	 * 更新allowNull属性
	 * @param fieldId
	 * @param allowNull
	 * @date 2018年5月30日上午8:41:59
	 */
	void updateAllowNull(Long fieldId, String allowNull);
	
	/**
	 * 批量新增数据库字段
	 * @param text
	 * @param rule
	 * @param tableId
	 * @date 2018年4月1日下午9:55:15
	 */
	void batchAddField(String text, String rule, Long tableId);

	/**
	 * 更新isPrimaryKey属性
	 * @param fieldId
	 * @param isPrimaryKey
	 * @date 2018年5月30日上午8:55:38
	 */
	void updateIsPrimaryKey(Long fieldId, String isPrimaryKey);

	/**
	 * 更新display属性
	 * @param fieldId
	 * @param display
	 * @author iuie
	 * @date 2018年5月30日 上午10:38:15
	 */
	void updateDisplay(Long fieldId, String display);

	/**
	 * 更新comment属性
	 * @param fieldId
	 * @param comment
	 * @author iuie
	 * @date 2018年5月30日 下午12:03:24
	 */
	void updateComment(Long fieldId, String comment);

}
